//
//  main.m
//  OC01_类和对象
//
//  Created by dllo on 16/2/24.
//  Copyright © 2016年 Apon. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h" /**< 导入头文件. */

int main(int argc, const char * argv[]) {
    
#pragma mark - 知识点1:类和对象.
    /**
     * 类: 由实例变量(特征)和(方法)行为组成.
     * 面向对象编程三步: 定义类, 创建对象, 使用对象.
     */
    
    
#pragma mark - 1.1 类的定义.
    /** 详见Person.h 和Person.m类文件*/
    
#pragma mark - 1.2 创建对象.
    
#if 0
    // 1. 开辟空间.
    Person *person1 = [Person alloc];
    
    // 2. 初始化.
    person1 = [person1 init];
    
    // alloc之后必须初始化, 所以通常alloc和init方法连写.
    Person *person2 = [[Person alloc] init];
#endif
    
    
#pragma mark - 知识点2:使用对象.
    
#if 0
    /** 使用对象,就是调用方法(功能). */
    // 创建对象
    Person *person1 = [[Person alloc] init];
    
    // 使用对象(调用方法)
    [person1 info];
    
    [person1 sayHi];
#endif

    
    
    
    
#pragma mark - 知识点3:实例变量的操作.
    
    
    //创建对象
    Person *person1 = [[Person alloc] init];
    
    
    //实例变量的赋值.
    person1->_name = @"zhangsan";
    person1->_age = 18;
    
    
    //实际变量的取值.
    NSLog(@"name:%@", person1->_name);
    
    
    //调用对象方法,
    [person1 info];
    
    
    
    
    
    
    
    
    
    return 0;
}
